﻿using Shop.Data.Entities;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Shop.Data.Business
{
     public class UsuarioBusiness
    {
         public static IList<Usuario> GetListByFilter(string filter) {
             using (ShopDbContext ctx = new ShopDbContext())
             {
                 return ctx.Usuarios.Where(t => t.login.Contains(filter)).ToList();
             }
         
         }

         public static Usuario Create(Usuario usuario)
         {
             using (ShopDbContext ctx = new ShopDbContext())
             {
                 Usuario usuarioDB = ctx.Usuarios.Add(usuario);
                 ctx.SaveChanges();
                 return usuarioDB;
             }
         }

         public static Usuario Update(Usuario usuario)
         {
             using (ShopDbContext ctx = new ShopDbContext())
             {

                 ctx.Entry(usuario).State = EntityState.Modified;
                 ctx.SaveChanges();
                 return usuario;

             }
         }
         public static Usuario GetById(Guid id)
         {

             using (ShopDbContext ctx = new ShopDbContext())
             {

                 Usuario u = ctx.Usuarios.Find(id);
                 if (u == null)
                 {
                     throw new Exception("Usuario GetById Not");
                 }
                 return u;
             }

         }

         public static void Delete(Guid id)
         {

             using (ShopDbContext ctx = new ShopDbContext())
             {
                 Usuario u = ctx.Usuarios.Find(id);

                 if (u == null)
                 {
                     throw new Exception("Cliente no Tiene Data");

                 }
                 ctx.Usuarios.Remove(u);
                 ctx.SaveChanges();

             }
         }
    }
}
